#ifndef CKKS_SRC_TIME_UTILS_H_
#define CKKS_SRC_TIME_UTILS_H_

#include "common.h"

struct timeval;

using namespace std;

class TimeUtils {
public:
    struct timeval startTime, stopTime;
    double timeElapsed;

    // -----------------------------------------

    // 普通构造函数
    TimeUtils();

    TimeUtils(const TimeUtils &other) = delete;
    TimeUtils &operator = (const TimeUtils &other) = delete;
    TimeUtils(TimeUtils &&other) = delete;
    TimeUtils &operator = (TimeUtils &&other) = delete;

    // -----------------------------------------

    /* *
     * starts timer
     * @param[in] string message
     */
    void Start(string msg);

    /* *
     * stops timer and prints time elapsed in console
     * @param[in] string message
     */
    void Stop(string msg);

    // -----------------------------------------
};

#endif
